0x69148	usa	left hand test
0x69488	jap
0x6704C	pal
2401001A	change from grenade type on test
02002025
80780080

0x69180	usa	right hand test
0x694C0	jap
0x67084	pal
2401001A	chnage from grenade type on test

0x691C4	usa	created weapon
0x69504	jap
0x670C8	pal
240500C4	change weapon model
0FC148F5/0FC14A34/0FC149AD
2406001A	change weapon type


7F035E78	1A.rr	throw grenade
JAL	7F03457C
OR	A0,S7,R0
BEQ	V0,R0,7F035EA0
OR	A0,S6,R0
OR	A1,S2,R0
JAL	7F0352F0
LBU	A2,0001 (S1)
OR	S2,V0,R0
BEQ	R0,R0,7F03558C	//return
ADDU	S1,S6,V0
//7F035EA0
ADDIU	S2,S2,0002
BEQ	R0,R0,7F03558C
ADDIU	S1,S1,0002

//7F03457C:	
calls JAL 7F0523D4: A1=model, A2=type
through 7F0345A4:	tests if random value/256 < 0x10 Offset
7F0345B4	JAL 7F032DE4 (handles position info)
through 7F0345D0:	tests if player too close
7F0345E0	JAL 7F02A258 (V0=0 if dying, getting shot, etc)

//7F0345F0:	check left hand weapon
JAL	7F02302C	//A1=hand (1-L, 0-R); returns V0=8006 for guard weapon
ADDIU	A1,R0,0000
SW	V0,0024 (SP)
OR	A0,S0,R0
JAL	7F02302C	//V0=right hand weapon 8006
OR	A1,R0,R0
LW	A1,0024 (SP)	//A1=lefty weapon
BEQ	V0,R0,7F034644	//branch if right hand empty
SW	V0,0020 (SP)
//7F034614:	left hand
LW	V1,0004 (V0)	//V1=weapon data offset
ADDIU	AT,R0,001A	//AT=grenade type
OR	A0,S0,R0	//A0=guarddata
LB	T8,0080 (V1)	//T8=weapon type
OR	A2,R0,R0	//A2=right hand?
OR	A3,R0,R0
BNE	T8,AT,7F034644	//branch if not a grenade
NOP
//7F034634:	chuck it!
JAL	7F024238
OR	A1,V0,R0	//A1=V0=8006 for weapon
BEQ	R0,R0,7F0346E8
ADDIU	V0,R0,0001
//7F034644:	right hand weapon test
BEQ	A1,R0,7F034678	//branch if hand empty
NOP
LW	V1,0004 (A1)	//V1=weapon object data
ADDIU	AT,R0,001A	//AT=grenade type
OR	A0,S0,R0
LB	T9,0080 (V1)	//T9=held weapon type
ADDIU	A2,R0,0001	//A2=left hand?
BNE	T9,AT,7F034678	//I ain't got no limbs left!
NOP
//7F034668:	chuck it!
JAL	7F024238
OR	A3,R0,R0
BEQ	R0,R0,7F0346E8
ADDIU	V0,R0,0001
//7F034678:	messy redirection
BEQ	A1,R0,7F034688	//keep going if hand was empty
OR	A0,S0,R0	//A0=guarddata
BNEL	V0,R0,7F0346E8	//kill it if you've got a weapon
	OR	V0,R0,R0
//7F034688:
BEQ	V0,R0,7F034694
OR	A3,R0,R0	//if no weapons at all, A3=0.  Otherwise, A3=10000000
LUI	A3,1000
ADDIU	A1,R0,00C4	//A1=grenade model
JAL	7F0523D4	//loads a grenade to empty hand!
ADDIU	A2,R0,001A	//A2=grenade type
BEQ	V0,R0,7F0346E4	//if new 8006 NULL, skip out
OR	A1,V0,R0	//A1=new object 8006
LW	V1,0004 (V0)	//V1=object data for weapon (80071E80, for instance)
OR	A0,S0,R0
ADDIU	A2,R0,0001	/A2=1
LW	T0,0064 (V1)	//T0=0x64 in object data.  Can't remember use
ORI	T1,T0,0800
SW	T1,0064 (V1)
LW	T2,0020 (SP)	//T2=right hand weapon 8006
BNEZ	T2,7F0346D4	//replace left (A2=1)
NOP
BEQ	R0,R0,7F0346D4	//replace right (A2=0)
OR	A2,R0,R0
//7F0346D4:	chuck the thing!  A2=that which is chucked
JAL	7F024238	//chuck hand=A2.  A3=1 when permanent
ADDIU	A3,R0,0001
BEQ	R0,R0,7F0346E8	//happy return=1
ADDIU	V0,R0,0001
//7F0346E4
OR	V0,R0,R0	//V0=0 when nothing is chucked
LW	RA,001C (SP)
LW	S0,0018 (SP)
ADDIU	SP,SP,0028
JR	RA
NOP


7F0523D4:	guard draws new weapon of type, returns V0=8006 for it
	accepts: A1=wep model, A2=wep type
ADDIU	SP,SP,FFE0
SW	RA,001C (SP)
SW	R0,0010 (SP)
JAL	7F052214
SW	R0,0014 (SP)
LW	RA,001C (SP)
ADDIU	SP,SP,0020
JR	RA
NOP

-7F024238	throw object from hand
	expects: A2=hand(0R 1L),A3=1 if temp object, S0=guarddata


7F02302C:	retrieve current guard weapon 8006 data
	expects A0=guarddata, A1=right-0:left-1	FRIES T7
	returns V0=8006 for weapon in hand
SLL	T6,A1,0x2
ADDU	T7,A0,T6
JR	RA
LW	V0,0160 (T7)
